Integrated circuits (IC) are known to include a multitude of electronic components deposited on a silicon substrate, or other type of substrate. The multitude of electronic components provide an almost endless combination of functional possibilities. For example, the electronic components may be interconnected to provide a volatile or non-volatile memory, a processing circuit such as a microprocessor, digital signal processor, microcontroller, a video graphics processor and so on.
As is also well known in the art, the processing speed of processing circuits is increasing at a faster rate than the storage capacity of memory devices. As such, if an integrated circuit is fabricated to include a processing device and memory, the memory may not provide sufficient digital storage for the processing device when it is running data intensive algorithms. Such data intensive algorithms may be video graphics programs, audio processing programs, database manipulation programs, etc. When this situation arises, the processing device reduces its processing speed to accommodate the memory or it cannot execute the application due to insufficient memory.
One rather obvious solution to the above mentioned problem is to simply include more memory on the integrated circuit. While this is possible, it increases the die size and subsequently increases the integrated circuit size and power dissipation. Because of the increase in the die size, the amount of additional memory is limited.
Another solution is to decrease the size of the memory such that more memory fits within the same die area. While this has helped greatly to increase the amount of on-chip memory, it is still not enough. As previously mentioned, the technical advances with respect to the speed of processing devices is happening more rapidly than the technical advances with respect to memory. Thus, the gap between sufficient on-chip memory and the processing speed of on-chip processors is growing.
Currently, off-the-self Random Access Memory (RAM) is commercially available in 1 Mbyte blocks of 128 K by 64 bits or 256 K by 32 bits. Such blocks may be combined to produce larger memory blocks. For example, two blocks may be combined to produce a 2 Mbytes RAM configured as 256 Ks by 64 bits. In many IC applications, 2 Mbytes of RAM, which is customized for on-chip applications, is the most memory that can be deposited on a die and keep the die size within acceptable limits; i.e., less than 12 mm by 12 mm.
Even with 2 Mbytes of RAM, many processing circuits, deposited on the same die, are capable of running applications that require more than 2 Mbytes of memory. But, are slowed to accommodate for the lack of memory capacity, or worse, cannot perform the application because of insufficient memory. Therefore, a need exists for a method and apparatus that allows an on-chip processing device to access more memory than is available on-chip without having to slow its processing speed and without being limited as to which applications it can perform.